#pragma once

#include "Svn.h"

using namespace System;

namespace IronSvn {

	[Serializable]
	public ref class SvnRevOrTxn
	{
	public:
		SvnRevOrTxn() {}
		SvnRevOrTxn(String^ transaction) {this->Transaction = transaction;}
		SvnRevOrTxn(long revision) {this->Revision = revision; m_explicit = true;}

		String^ Transaction;
		long Revision;

		bool IsTransaction() { return !String::IsNullOrEmpty(this->Transaction); }
		property bool IsExplicit { bool get() {return m_explicit;} }

		virtual String^ ToString() override;
	private:
		bool m_explicit;
	};
}
